SAS 基礎指令介紹

0

 

基礎指令

敘述句(statement) 說明
DATA  新增資料集名稱 ; 建立一個新的SAS資料集
SET SAS資料集 ; 讀取永久或是暫存的SAS資料集
IF 判斷式 THEN 敘述句 ;

<ELSE IF 判斷式 THEN 敘述句  ; >

<ELSE IF 判斷式 THEN 敘述句 ; >

1.依據判斷式的內容來為資料做分組

2.若某變數(例如:年齡)欲分成多組時,此時會需要撰寫多行IF判斷式。為了讓程式執行更有效率,第二個判斷式我們將採用ELSE IF來陳述

LABEL 變數名稱="標籤" ; 為變數加上標籤,標籤一定用引號框起來
KEEP 變數名稱 ; 保留要存在SAS資料集的變數

 

判斷式 說明
EQ, = 等於某一個數值或是文字
GT, > 大於
LT, < 小於
GE, >= 大於或等於
LE, <= 小於或等於
NE 不等於
IN 等於多個數值或是文字

 

邏輯判斷式 說明
NOT, ~ 不屬於在條件裡
AND, & 所有條件都要滿足
OR, | 只要有符合一項條件即可

 

資料運算

敘述句(statement) 說明
新增變數=運算式 ; 新增變數,運算式的部份可以是常數/運算式/函數…等
新增變數=(運算式) ; 1.在括號內放入判斷式,我們稱作布林(Boolean)運算式。

2.若條件判斷為真,其結果為1;否則為0

"ddmmyyyy"n 1.由於日期為數值,在抓取日期資料時(例如:2018/5/2),我們通常無法知道欲抓的日期切確數值,但是我們可以用此格式("02MAY2018"D)告知SAS我們欲抓的日期

2.英文大小寫沒有差異;單雙引號都可以

 

ID歸戶

敘述句(statement) 說明
PROC SORT DATA=SAS資料集 ;

    BY <DESCENDING>變數 ;

RUN ;

1.對指定的變數做排序(預設為遞增排序)

2.若要遞減排序,則在變數前面加上DESCENDING

3.若有多個變數要做遞減排序時,則要在每個變數前面加上DESCENDING

RENAME=(舊的變數名稱=新的變數名稱) 幫變數修改名稱
OUTPUT <SAS資料集> ; 將資料輸出

 

FIRST.變數名稱 / LAST.變數名稱 1.此變數為暫時性變數,在產生SAS資料集時並不會出現

2.暫時性變數內存的值為10

3.要先對變數做排序

4.欲使用此指令要下BY敘述句

IF 判斷式 THEN DO ;

    敘述句1 ; 敘述句2 ; ……

END ;

如果判斷式後面要放入的資訊超過1個敘述句時,就用DO及END把敘述句包在裡面
新變數+舊變數(運算式) 1. 欲對某個變數做垂直加總,

「+」為關鍵字

 

敘述句(statement) 說明
新變數+舊變數(or 運算式) 1.目標:欲對某個變數做垂直(向下)累計加總

2.把累加後的數值放在新變數裡

3.舊變數(or 運算式)的位置放的是欲被加總的變數

4.若遇到遺漏值,在加總時會自動排

5.「+」為關鍵字,所以不可以改成「-

 

敘述統計

敘述句(statement) 說明
PROC SUMMARY DATA=SAS資料集 ;

VAR 變數名稱 ;

OUTPUT OUT=新SAS資料集

     <統計量=統計量的變數名稱> ;

RUN ;

1.敘述性統計報表

2.VAR放的是欲分析的變數

3.若分析後的報表要輸出為SAS資料集,則在OUTPUT敘述句裡下OUT=來產生SAS資料集

4.同時,亦可以在OUTPUT敘述句裡下統計量,並給予該統計量變數名稱

 

資料轉置

敘述句(statement) 說明
PROC TRANSPOSE DATA=SAS資料集

OUT=新SAS資料集;

    VAR 分析變數 ;

    BY 分析群組變數 ;

    ID 新的變數名稱;

RUN ;

1.對資料進行轉置

2.OUT=把轉置完成的SAS資料集輸出

3.VAR敘述句是欲轉置的變數

4.BY敘述句是指定某個(些)變數來控制變數轉置情形

5.BY敘述句內的變數一定要排序

6.ID敘述句為產生新的變數名稱

"變數名稱"n 當變數名稱不符合SAS命名規則時,就用引號把該變數框起來,並在後方緊接著n

 

資料計算

敘述句(statement) 說明
PROC FREQ DATA=SAS資料集

                  ORDER=FREQ;  

    TABLE 分析變數 / OPTION(S) ;

    BY 分析群組變數 ;

RUN ;

1.對資料計算(累積)次數及(累積)百分比

2.把欲計算的變數放在TABLE敘述句裡

3.ORDER=freq為輸出時依照頻率遞減排序

4.OPTION(S)的部份調整報表輸出的統計量

5.BY敘述句是指定某個(些)變數來控制變數計算統計量的情形

6.BY敘述句內的變數一定要排序

PROC SORT DATA=SAS資料集 NODUPKEY  ;

    BY <DESCENDING>變數 ;

RUN ;

查看被排序的變數是否有重複,若有,則要刪除觀察值

 

聯結表格

敘述句(statement) 說明
DATA SAS資料集 ;

    MERGE SAS資料集1(IN=自訂變數1)

SAS資料集2(IN=自訂變數2) …… ;

    BY 關鍵字(變數) ;

    IF 自訂變數1=1…… ;

RUN ;

1.對兩張(多張)SAS資料集進行水平合併

2.要合併的SAS資料集要先進行排序

3.SAS資料集內一定要有共同的合併關鍵字(即變數名稱要相同),且變數型態要一致。若關鍵字名稱不相同則需要改變變數名稱

4.關鍵字的長度可以不相同,但資料可能會被截斷

5.可在欲被合併的SAS資料集後面加上IN=自定變數,即可產生暫時性的變數,裡面存的數值為0或是1;1表示在合併資料的過程中,此次有貢獻資料出來合併,反之,0表示在合併資料的過程中,此次沒有貢獻資料出來合併

6.IF判斷式放自訂變數的條件,來決定想要輸出的資料集為何

 

遺漏值處理

敘述句(statement) 說明
ARRAY array-name{維度} 變數 ; 1.array-name不是變數

2.把變數全部打包在一起,並暫時命名此群組為array-name

3.維度的個數必須要和變數個數相同

DIM(array-name) SAS函數;計算Array裡的維度有幾個
DO 指標變數=1 TO N ;

    敘述句 ;

END ;

1.針對敘述句做反覆運算,從1開始,重覆N次

2.指標變數會新增在SAS資料集內

 

統計分析

敘述句(statement) 說明
PROC LOGSITIC DATA=sas資料集 ;

    CLASS 類別變數 ;

    MODEL 依變數=解釋變數 ;

RUN ;

1.做羅吉斯迴歸分析

2.CLASS敘述句是宣告哪些是類別變數

3.依變數放的是二元/名目變數

4.解釋變數的部份包括連續資料與類別資料

 

Tags
Share

About Author

SAS Taiwan

SAS 學習資源 : https://blogs.sas.com/content/sastaiwan/

Comments are closed.

Back to Top